package com.example.tcp2504.MultithreadingExample;

// 定义一个类 TransferProgress，用于跟踪文件传输进度
public class TransferProgress {
    // 已传输的字节数
    private long transferred;
    // 文件的总字节数
    private long total;

    // 同步方法，设置已传输的字节数
    public synchronized void setTransferred(long transferred) {
        this.transferred = transferred; // 更新已传输的字节数
    }

    // 同步方法，设置文件的总字节数
    public synchronized void setTotal(long total) {
        this.total = total; // 更新文件的总字节数
    }

    // 同步方法，计算并返回传输进度的百分比
    public synchronized double getProgressPercentage() {
        // 如果总字节数大于0，计算已传输字节数占总字节数的百分比
        // 否则返回0，表示没有数据或总字节数未设置
        return total > 0 ? (double) transferred / total * 100 : 0;
    }
}